package com.efast.dmom.aps.service;

import java.util.List;

import com.efast.dmom.aps.bean.PlanOrder;
import com.efast.dmom.aps.bean.PlanOrderAdjustQueryCondition;
import com.efast.dmom.aps.bean.PlanOrderAdjustQueryData;
import com.efast.dmom.aps.bean.ResultBean;

public interface PlanOrderService {

	/**
	 * 
	 * @param apsPlanOrderStatusBroadcast
	 * @return 按时间交期和订单优先级获取未下达的工单
	 */
	List<PlanOrder> getUnbroadcastPlanOrders(long prodLineKey);
	
	//计划工单合并校验
	boolean mergeCheck(List<PlanOrder> planOrderList);
	//合并计划工单
	ResultBean mergePlanOrder(List<PlanOrder> planOrderList);
	//计划工单拆分
	ResultBean splitPlanOrder(PlanOrder planOrder,List<Double> qty);
	//计划撤销(merge,split)
	ResultBean rollbackPlanOrder(PlanOrder planOrder,String type);
	
	//冻结解冻计划工单
	ResultBean holdPlanOrder(List<PlanOrder> planOrderList,String reason);
	ResultBean unholdPlanOrder(List<PlanOrder> planOrderList,String reason);
	//计划审核通过
	ResultBean auditPlanOrder(List<PlanOrder> planOrderList);
	//计划审核不通过
	ResultBean unAuditPlanOrder(List<PlanOrder> planOrderList,String reason);

	//plan to adjust the data query
	PlanOrderAdjustQueryData getDataByPlanOrderAdjust(PlanOrderAdjustQueryCondition planOrderAdjustQueryCondition);
	
	
}
